Entity Framework Code-First এবং Database-First Approach

Microsoft Technologies - এএসপি ডট নেট এমভিসি (ASP.Net MVC) ডেটাবেস অপারেশন (Database Operations) |
244
244

Entity Framework (EF) হলো একটি Object Relational Mapping (ORM) টুল, যা ডেভেলপারদের ডেটাবেসের সাথে যোগাযোগ সহজ করতে সাহায্য করে। এটি ডেটাবেস টেবিলকে ক্লাস এবং কলামকে প্রপার্টি হিসেবে উপস্থাপন করে। EF ব্যবহার করে আমরা দুটি প্রধান পদ্ধতিতে ডেটাবেসের সঙ্গে কাজ করতে পারি: Code-First Approach এবং Database-First Approach


Code-First Approach

Code-First Approach ব্যবহার করে আমরা প্রথমে ক্লাস তৈরি করি, যা ডেটাবেসের টেবিল হিসেবে ব্যবহৃত হয়। এর মাধ্যমে ডেভেলপাররা ডেটাবেসের ওপর কম নির্ভরশীল হয়ে কোড থেকে সরাসরি ডেটাবেস তৈরি এবং ম্যানেজ করতে পারেন।

বৈশিষ্ট্য:

  • প্রথমে কোড লেখা হয় এবং এরপর ডেটাবেস তৈরি করা হয়।
  • ডেটাবেসের জন্য প্রয়োজনীয় মডেল ক্লাস এবং Context ক্লাস তৈরি হয়।
  • ডেটাবেস পরিবর্তন করলে Migration এর মাধ্যমে সেসব পরিবর্তন পরিচালনা করা যায়।

উদাহরণ:

ধরা যাক আমরা একটি Student টেবিল তৈরি করতে চাই।

  1. মডেল তৈরি:
public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Class { get; set; }
}
  1. Context ক্লাস তৈরি:
public class SchoolContext : DbContext
{
    public DbSet<Student> Students { get; set; }
}
  1. ডেটাবেস তৈরি: Command Prompt এ Add-Migration এবং Update-Database কমান্ড ব্যবহার করে ডেটাবেস তৈরি করা হয়।
Add-Migration InitialCreate
Update-Database

Code-First এর সুবিধা:

  • ডেটাবেস তৈরি বা পরিবর্তনের সম্পূর্ণ নিয়ন্ত্রণ ডেভেলপারের হাতে থাকে।
  • মডেল এবং ডেটাবেসের মধ্যে অটোমেটিক সিঙ্ক্রোনাইজেশন হয়।
  • Lightweight এবং Flexible।

সীমাবদ্ধতা:

  • বিদ্যমান ডেটাবেস নিয়ে কাজ করার জন্য উপযুক্ত নয়।
  • বড় এবং জটিল ডেটাবেস কাঠামোতে ম্যানুয়াল হস্তক্ষেপের প্রয়োজন হতে পারে।

Database-First Approach

Database-First Approach-এ প্রথমে ডেটাবেস তৈরি করা হয়, এবং তারপর Entity Framework ডেটাবেস থেকে মডেল জেনারেট করে। এটি বিদ্যমান ডেটাবেস নিয়ে কাজ করার জন্য আদর্শ।

বৈশিষ্ট্য:

  • ডেটাবেস আগে থেকেই থাকে।
  • Entity Framework ডেটাবেসের টেবিল এবং সম্পর্ক অনুযায়ী মডেল ক্লাস অটোমেটিক জেনারেট করে।
  • ডেটাবেসের স্কিমা পরিবর্তন করা হলে মডেল পুনরায় জেনারেট করা যায়।

উদাহরণ:

ধরা যাক একটি বিদ্যমান ডেটাবেস রয়েছে এবং আমরা EF ব্যবহার করতে চাই।

  1. ডেটাবেস তৈরি করুন: SQL Server-এ Student নামে একটি টেবিল তৈরি করুন।
CREATE TABLE Students (
    Id INT PRIMARY KEY,
    Name NVARCHAR(50),
    Class NVARCHAR(20)
);
  1. EF মডেল জেনারেট করুন: Visual Studio-তে Add New Item > Data > ADO.NET Entity Data Model নির্বাচন করুন। Database-First Approach সিলেক্ট করে ডেটাবেস কানেকশন কনফিগার করুন।
  2. জেনারেটেড মডেল: EF ডেটাবেস টেবিল অনুযায়ী মডেল ক্লাস তৈরি করবে।
public partial class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Class { get; set; }
}

Database-First এর সুবিধা:

  • বিদ্যমান ডেটাবেসের জন্য উপযুক্ত।
  • ডেটাবেসের টেবিল এবং সম্পর্কের সঠিক অনুলিপি তৈরি হয়।
  • দ্রুত শুরু করার জন্য কার্যকর।

সীমাবদ্ধতা:

  • কোড থেকে ডেটাবেস পরিবর্তন কঠিন।
  • বড় প্রজেক্টে মডেল ক্লাস ম্যানুয়ালি কাস্টমাইজ করা সময়সাপেক্ষ হতে পারে।

Code-First এবং Database-First এর তুলনা

বৈশিষ্ট্যCode-First ApproachDatabase-First Approach
ডেটাবেস প্রাথমিক অবস্থাকোড থেকে ডেটাবেস তৈরি করা হয়বিদ্যমান ডেটাবেস থেকে মডেল তৈরি হয়
কোড এবং ডেটাবেস নিয়ন্ত্রণমডেলের উপর সম্পূর্ণ নিয়ন্ত্রণডেটাবেস স্কিমা পূর্ব নির্ধারিত
Migrationসহজে ডেটাবেস পরিবর্তন করা যায়ডেটাবেস পরিবর্তন মডেলে প্রতিফলিত করা কঠিন
ব্যবহারিক ক্ষেত্রনতুন ডেটাবেস তৈরি করার জন্য উপযুক্তবিদ্যমান ডেটাবেসের জন্য উপযুক্ত

সারমর্ম

Code-First Approach নতুন অ্যাপ্লিকেশন এবং ডেটাবেসের জন্য কার্যকর, যেখানে ডেভেলপারদের সম্পূর্ণ নিয়ন্ত্রণ প্রয়োজন। অন্যদিকে, Database-First Approach বিদ্যমান ডেটাবেস নিয়ে কাজ করার জন্য সবচেয়ে উপযুক্ত। প্রকল্পের প্রয়োজনীয়তা এবং ডেভেলপমেন্ট পরিবেশ অনুযায়ী সঠিক পদ্ধতি নির্বাচন করতে হবে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion